package com.radar.controller;//package com.geovis.controller;
//
//import cn.hutool.core.io.FileUtil;
//import com.geovis.license.LicenseCreator;
//import com.geovis.license.SerialNumberUtil;
//import com.geovis.license.dto.License;
//import com.geovis.license.dto.LicenseExtraModel;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.Calendar;
//import java.util.Date;
//
//@RestController
//@RequestMapping("license")
//public class LicenseController {
//
//    /**
//     * 证书subject
//     */
//    @Value("${license.subject}")
//    private String subject;
//
//    /**
//     * 证书生成路径
//     */
//    @Value("${license.licensePath}")
//    private String licensePath;
//
//
//    @Value("${license.privateKeysStorePath}")
//    private String privateKeysStorePath;
//
//
//    @GetMapping("generateKey")
//    public Object generateKey(String cpuid, int month) {
//        // 生成license需要的一些参数
//        License param = new License();
//        // 证书授权主体
//        param.setSubject(subject);
//        // 私钥别名
//        param.setPrivateAlias("radarflow_privatekey");
//        // 私钥密码（需要妥善保管，不能让使用者知道）
//        param.setKeyPass("Zhongz62");
//        // 访问私钥库的密码
//        param.setStorePass("Zhongz62");
//        // 证书存储地址
//        FileUtil.mkParentDirs(licensePath);
//        param.setLicensePath(licensePath);
//        // 私钥库所在地址
//        param.setPrivateKeysStorePath(privateKeysStorePath);
//        // 证书生效时间
//        Calendar issueCalendar = Calendar.getInstance();
//        param.setIssuedTime(issueCalendar.getTime());
//        // 证书失效时间
//        Calendar expiryCalendar = Calendar.getInstance();
//        // 设置当前时间
//        expiryCalendar.setTime(new Date());
//        // 往后延长一年 = 授权一年时间
//        month = month < 0 || month == 9999 ? 12 * 10 : month;
//        expiryCalendar.add(Calendar.MONTH, month);
//        param.setExpiryTime(expiryCalendar.getTime());
//        // 用户类型
//        param.setConsumerType("user");
//        // 用户数量
//        param.setConsumerAmount(1);
//        param.setLicenseExtraModel(new LicenseExtraModel());
//        cpuid = cpuid == null || cpuid.equals("") ? SerialNumberUtil.CPU() : cpuid;
//        param.getLicenseExtraModel().setCpuid(cpuid);
//        // 描述
//        param.setDescription("license");
//        LicenseCreator licenseCreator = new LicenseCreator(param);
//        // 生成license
//        return licenseCreator.generateLicense();
//    }
//
//    public static void main(String[] args) {
//        System.out.println(SerialNumberUtil.getCPUSerial());
//    }
//}
